package flag

import (
	"fmt"
	"os"

	"github.com/integrii/flaggy"
)

var (
	filePath          = "config.yml"
	version           = "v1.0.0"
	Qps               = 100.0
	num         int64 = 200
	timeOut     int64 = 10
	name              = "sun-api-ab"
	description       = "接口压力测试工具"

	data = FlagData{}
)

func NewFlag() (FlagData, error) {
	flaggy.SetName(name)

	flaggy.SetDescription(description)

	flaggy.SetVersion(version)

	flaggy.DefaultParser.ShowVersionWithVersionFlag = false
	versionFlag := false

	flaggy.Bool(&versionFlag, "v", "version", "应用版本")

	flaggy.String(&filePath, "f", "file", "接口配置文件")

	flaggy.Float64(&Qps, "q", "QPS", "QPS")

	flaggy.Int64(&num, "n", "number", "请求总数")

	flaggy.Int64(&timeOut, "t", "time_out", "超时时间")

	flaggy.Parse()

	data.FilePath = filePath
	data.Qps = Qps
	data.Number = num

	if versionFlag {
		fmt.Printf("版本:%s", version)
		os.Exit(0)
	}

	return data, nil
}
